package com.yuezhu.util;

import com.google.gson.Gson;

import org.json.JSONArray;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;

/**
 * 
 * Json解析工具
 * 
 * @since 1.0
 * @author user
 */
public class GsonUtil {

	/**
	 * 
	 * 解析json对象
	 * 
	 * @since 1.0
	 * @author user
	 * @param target
	 *            (注入需要解析的对象)
	 * @param json
	 * @return
	 * @throws Exception
	 */
	public static <T> T jsonToObject(Class<T> target, JSONObject json)
			throws Exception {
		Gson gson = new Gson();
		return gson.fromJson(json.toString(), target);
	}

	/**
	 * 
	 * 解析json数组
	 * 
	 * @since 1.0
	 * @author user
	 * @param target
	 *            (注入需要解析的对象)
	 * @param array
	 * @return
	 * @throws Exception
	 */
	public static <T> List<T> jsonToList(Class<T> target, JSONArray array)
			throws Exception {

		List<T> list = new ArrayList<T>();
		int size = array.length();
		for (int i = 0; i < size; i++) {
			JSONObject json = array.getJSONObject(i);
			list.add(jsonToObject(target, json));
		}
		return list;
	}

	/**
	 * 
	 * 基本对象List解析成json
	 * 
	 * @since 1.0
	 * @author user
	 * @return
	 */
	public static String ListToJson(List list) {
		Gson gson = new Gson();
		return gson.toJson(list);
	}

}
